Solution /** * Definition for a binary tree node.
Solution Recursive /** * Definition for a binary tree node. searchPath(root->right, s, result); } } }; Iterative /** * Definition for a binary tree node
Balanced Binary Tree Given a binary tree, determine if it is height-balanced. For this problem, a height-balanced binary tree is defined as: a binary tree in which the depth of the Example 1: Given the following tree [3,9,20,null,null,15,7]: 3 / \ 9 20 / \ 15 7 Example 2: Given the following tree [1,2,2,3,3,null,null,4,4]: 1 / \ 2 2 / \ 代码: go: /** * Definition for a binary tree node.
Invert Binary Tree Invert a binary tree. / \ 7 2 / \ / \ 9 6 3 1 思路: 递归求解翻转每个不为nil的节点 代码: go: /** * Definition for a binary tree node
Binary Tree Paths Given a binary tree, return all root-to-leaf paths. 代码: go: /** * Definition for a binary tree node.
题目: Given a binary tree, determine if it is height-balanced. For this problem, a height-balanced binary tree is defined as a binary tree in which the depth of the C++参考示例代码: /** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left
问题描述 Given a binary tree, return the inorder traversal of its nodes’ values. For example: Given binary tree [1,null,2,3], 1 \ 2 / 3 return [1,3,2]. 2. /** * Definition for a binary tree node.
问题:二叉树的最深深度 class Solution { public: void dfs(TreeNode *root,int step,int &MAX) { if(root==NULL) { if(MAX<step) MAX=step; return ; } dfs(root->left,step+1); dfs(root->right,step+1);
这题有意思的是,并不能直接将求最大深度的max改为min就完了,有很多坑在里面。一开始我以为只要将[],[0],[1,2]等情况考虑掉就可以了,其实在只有一边又子节点的情况下,是仍然需要遍历的。 例如:
二叉树的前序遍历 递归实现 /** * Definition for binary tree * struct TreeNode { * int val; * TreeNode
题意:二叉树的最小深度 注意 1.当root为空的时候直接返回0,因为MIN赋值很大,所以如果不单独预判的话会返回MIN 2.判断树的深度应该到叶子节点,也就是左右子结点都为空的那个结点 3.树的深度的根节点深度为1 class Solution { public: void dfs(TreeNode *root,int &MIN,int step) { if(root==NULL) return ; if(root->
/** * Definition for a binary tree node.
Binary Tree Inorder Traversal Given a binary tree, return the inorder traversal of its nodes' values. 迭代也是使用list容器来充当栈 代码: go : /** * Definition for a binary tree node.
Binary Tree Preorder Traversal Given a binary tree, return the preorder traversal of its nodes' values 思路: 二叉树的先序遍历,递归求解和迭代,迭代使用list容器的链表代替栈来做 代码: go: /** * Definition for a binary tree node.
Binary Tree Postorder Traversal Given a binary tree, return the postorder traversal of its nodes' values 代码: go: /** * Definition for a binary tree node.
Minimum Depth of Binary Tree Given a binary tree, find its minimum depth. Example: Given binary tree [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 return its 代码: go: /** * Definition for a binary tree node.
问题:二叉树中序遍历 递归实现 /** * Definition for binary tree * struct TreeNode { * int val; * TreeNode
Solution /** * Definition for a binary tree node.
Solution Recurrent /** * Definition for a binary tree node.
Serialize and Deserialize Binary Tree Serialization is the process of converting a data structure or Design an algorithm to serialize and deserialize a binary tree. You just need to ensure that a binary tree can be serialized to a string and this string can be deserialized to the original tree structure. ,null,null,4,5]" Clarification: The above format is the same as how LeetCode serializes a binary tree